Muchos m�todos de los paquetes JNDI lanzan una NamingException cuando necesitan indicar que la operaci�n solicitada no se ha realizado.
Normalmente, usaremos un bloque try/catch para envolver los m�todos que lanzan NamingException.
try {
Context ctx = new InitialContext();
Object obj = ctx.lookup("somename");
} catch (NamingException e) {
// Handle the error
System.err.println(e);
}
��rbol de Clases Exception
El JNDI tiene un rico �rbol de excepciones que nace de la clase NamingException.
Los nombres de las clases de las excepciones son auto-explicativos y los veremos m�s abajo. Para manejar una subclase particular de NamingException, capturamos la clase de forma separada. Por ejemplo el siguiente c�digo trata especialmente a AuthenticationException y sus subclases.
try {
Context ctx = new InitialContext();
Object obj = ctx.lookup("somename");
} catch (AuthenticationException e) {
// attempt to reacquire the authentication information
...
} catch (NamingException e) {
// Handle the error
System.err.println(e);
}
�Enumeraciones
Operaciones como Context.list() y DirContext.search() devuelven una NamingEnumeration . En estos casos, si ocurre un error y no se devuelve ning�n resultado, se lanzar� NamingException o una de sus subclases apropipadas en el momento en que se llame al m�todo. Si ocurre un error pero hay algunos resultados para devolver, se devuelve una NamingEnumeration para que podamos obtener dichos resultados. Cuando todos los resultados se han acabado, llamar a NamingEnumeration.hasMore() causar� que se una lance una NamingException (o una de sus subclases)� para indicar el error. En este punto, la enumeraci�n ya no es v�lida y no se puede llamar a m�s m�todos sobre ella.
Por ejemplo, si realizamos una search() y especificamos un contador l�mite (n) de cu�ntas respuestas devolver, el search() devolver� una enumeraci�n consitente en como m�ximo n resultados. Si el n�mero de resultados excede de n, cuando se llame a NamingEnumeration.hasMore() la vez n+1, se lanzar� una SizeLimitExceededException.
Puedes ver la explicaci�n sobre el contador l�mite en esta secci�n para ver un ejemplo.
�Ejemplos en este Tutorial
En el c�digo de ejemplo en l�nea que est� dentro de este tutorial, normalmente se omiten las clausulas try/catch para una mejor lectura. Normalmente, como aqu� s�lo se meustran fragmentos de c�digo, s�lo se incluyen las l�neas que ilustran directamente el concepto. Veremos los bloques try/catch apropiados para NamingException si miramos los ficheros fuentes que acompa�an este tutorial.
�Excepciones en el Paquete javax.naming
Aqu� tenemos las direcciones en el API de Sun de las excepciones contenidas en
el paquete javax.naming:
�Excepciones en el Paqute javax.naming.directory
Aqu� tenemos las direcciones en el API de Sun de las excepciones contenidas en
el paquete javax.naming.directory.
�Excepciones en el Paquete javax.naming.ldap
Aqu� tenemos las direcciones en el API de Sun de las excepciones contenidas en el paquete javax.naming.directory: